package com.example.study.ui_animated

//https://blog.csdn.net/u012400885/article/details/78956947
class 有关SVG {
    /*
    要清晰就要每种dpi放置图片，缺点是造成Apk越来越大
    想要适配并apk小只能兼容主流dpi抛弃使用少的
    保留一种，兼容性大大降低
    矢量图svg，清晰且不增加体积，兼容所有分辨率

    性能问题
    svg对cpu挑战大，现在手机不是问题
    体积
    平均每个图片减少2kb
    性能（加载+渲染）
    svg 875（247+627）us png2972（2923+49）us
    svg加载快 没有硬件渲染不如png。svg渲染过程使用了picture
    进行渲染。picture并不支持硬件加速。但缓存过一次后得到bitmap就可以加速了
    缺点
    由于实现方式原因每个SVG将额外消耗掉280us左右的时间

 android中的矢量图 便是Vector，也被称为Vector Drawable
    Vector Drawable相对于普通的Drawable来说好处
    1.Vector图像可以自动进行适配，不需要通过分辨率来设置不同的图片
    2.vector图像可以大幅减少图像的体积，vector和png同图相差几十分之一
    3.使用很简单，设计工具可导出svg转为Vector
    4.代码量少功能强大

Vector语法简介
    M = moveto(M X,Y) ：将画笔移动到指定的坐标位置，相当于 android Path 里的moveTo()；

L = lineto(L X,Y) ：画直线到指定的坐标位置，相当于 android Path 里的lineTo()；

H = horizontal lineto(H X)：画水平线到指定的X坐标位置；

V = vertical lineto(V Y)：画垂直线到指定的Y坐标位置 ；

C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY)：三次贝赛曲线 ；

S = smooth curveto(S X2,Y2,ENDX,ENDY)： 同样三次贝塞尔曲线，更平滑 ；

Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY)：二次贝赛曲线 ；

T = smooth quadratic Belzier curveto(T ENDX,ENDY)：映射 同样二次贝塞尔曲线，更平滑 ；

A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y)：弧线 ，相当于arcTo()；

Z = closepath()：关闭路径（会自动绘制链接起点和终点）；


SVG生成工具http://editor.method.ac/
svg转vectorDrawable工具 http://inloop.github.io/svg2android/

https://blog.csdn.net/u012400885/article/details/78976352

    */
}
/*
普及知识：
·矢量图像
    svg是w3c推出的一种开放标准的文本式矢量图形描述语言，基于xml，
    专门为网络而设计的图像格式。So，Svg是一种采用xml来描述二维图形的语言，
    所以它可以之间打开xml文件修改编辑
·位图图像
    位图图像（bitmap）的存储单位是图像上的每一点的像素值，因此文件较大，
    像gig，jpeg，png等都是位图图像


*/